package com.yami.shop.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yami.shop.bean.model.BusinessNft;
import com.yami.shop.bean.model.ShopDetail;
import com.yami.shop.bean.param.UserUpdateParam;
import com.yami.shop.common.util.PageParam;

import java.util.List;

/**
 * <p>
 * 取币业务记录表 服务类
 * </p>
 *
 * @author author
 * @since 2023-05-18
 */
public interface BusinessNftService extends IService<BusinessNft> {

    BusinessNft getInfoLast();

    void updateStatus( Long businessNftId,Integer status, String reason);

    void updateStatusBatchById(List<Long> ids, Integer status);

    /**
     * 下游业务处理
     *
     * @return
     */
    List<BusinessNft> getInfoList(Integer num);

    /**
     * 对用户发放空投，如果已达上限等领取不了的情况直接退出
     *
     * @param param  空投数据
     * @param shopDetail 店铺信息
     */
    void bindDropById(UserUpdateParam param, ShopDetail shopDetail);


    /**
     * 条件查询，分页获取取币业务信息
     *
     * @param page        分页参数
     * @param businessNft 条件查询参数
     * @return 分页取币业务信息列表
     */
    IPage<BusinessNft> getBusinessNftPage(PageParam<BusinessNft> page, BusinessNft businessNft);

}
